package com.ciei.dpagm.common.enums;

import com.baomidou.mybatisplus.annotation.EnumValue;

import java.util.Arrays;

/**
 * 权限隐藏
 *
 * @author kiho
 * @date 2022/11/17
 */
public enum RightHiddenEnum {

    /**
     * 显示（默认）
     */
    VISIBLE(0,false),

    /**
     * 隐藏
     */
    HIDDEN(1, true),
    ;

    @EnumValue
    private Integer value;

    private boolean isHidden;

    RightHiddenEnum(Integer value, boolean isHidden) {
        this.value = value;
        this.isHidden = isHidden;
    }

    public Integer getValue() {
        return value;
    }

    public boolean isHidden() {
        return isHidden;
    }

    /**
     * 判断数据库值是否相等
     * @param value 数据库值
     * @return true: 说明相等
     */
    public boolean equalsValue(Integer value) {
        return this.getValue().equals(value);
    }

    public static boolean getBooleanByValue(Integer value) {
        return Arrays.stream(values())
                .filter(hiddenEnum -> hiddenEnum.getValue().equals(value))
                .map(RightHiddenEnum::isHidden)
                .findFirst()
                .orElse(false);
    }
}
